每个SpringApplication都有ApplicationListeners和ApplicationContextInitializers,用于自定义上下文(context)或环境(environment)。Spring Boot从META-INF/spring.factories
下加载很多这样的内部使用的自定义。有很多方法可以注册其他的自定义:
addListeners
和addInitializers
方法来实现。context.initializer.classes
或context.listener.classes
来实现。META-INF/spring.factories
并打包成一个jar文件(该应用将它作为一个库)来实现。SpringApplication会给监听器(即使是在上下文被创建之前就存在的)发送一些特定的ApplicationEvents,然后也会注册监听ApplicationContext发布的事件的监听器。查看Spring Boot特性章节中的Section 22.4, “Application events and listeners” 可以获取一个完整列表。